# 第一阶段：构建前端应用
FROM 18-alpine AS build-stage

# 设置工作目录
WORKDIR /web

# 复制前端代码到容器
COPY web/package*.json ./
RUN npm install

# 复制整个前端代码到容器
COPY web/ ./

# 构建前端应用
RUN npm run build


FROM python:3.12-slim-bullseye
# 设置工作目录
WORKDIR /app

# 更新并安装必要的系统依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
    gcc \
    libpq-dev \
    procps \
    && rm -rf /var/lib/apt/lists/*

# 复制并安装 Python 依赖
COPY requirements.txt /app/
RUN pip install --no-cache-dir -r requirements.txt

# 复制 FastAPI 应用代码
COPY . /app/

# 配置时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

# 复制构建好的前端文件到后端应用的静态文件目录
COPY --from=build-stage /web/dist /app/backend/app/static

# 暴露端口
EXPOSE 9999
# 启动 FastAPI 应用
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "9999"]